; ModuleID = "/Users/hzy/Documents/Projects/MelodieABM/MelodieFuture/llvm/ast_parser.py"
target triple = "unknown-unknown-unknown"
target datalayout = ""

declare double @"pow"(double %".1", double %".2") 

define i64 @"nested_while_loop"(double %".1") 
{
entry:
  %"count" = alloca i64
  store i64 0, i64* %"count"
  %"count.1" = load i64, i64* %"count"
  %"i" = alloca i64
  store i64 0, i64* %"i"
  %"i.1" = load i64, i64* %"i"
  %"j" = alloca i64
  store i64 0, i64* %"j"
  %"j.1" = load i64, i64* %"j"
  br label %"_block_while_loop1"
_block_while_loop1:
  %"i.2" = phi i64 [%"i.1", %"entry"], [%"i.4", %"_block_while_loop1"]
  %"count.2" = phi i64 [%"count.1", %"entry"], [%"count.5", %"_block_while_loop1"]
  %"j.2" = phi i64 [%"j.1", %"entry"], [%"j.5", %"_block_while_loop1"]
  %"_tmp3" = add i64 %"i.2", 1
  %"i.3" = alloca i64
  store i64 %"_tmp3", i64* %"i.3"
  %"i.4" = load i64, i64* %"i.3"
  br label %"_block_while_loop4"
_block_after_while_loop2:
  ret i64 %"count.5"
_block_while_loop4:
  %"count.3" = phi i64 [%"count.2", %"_block_while_loop1"], [%"count.5", %"_block_while_loop4"]
  %"j.3" = phi i64 [%"j.2", %"_block_while_loop1"], [%"j.5", %"_block_while_loop4"]
  %"_tmp6" = add i64 %"count.3", 1
  %"count.4" = alloca i64
  store i64 %"_tmp6", i64* %"count.4"
  %"count.5" = load i64, i64* %"count.4"
  %"_tmp7" = add i64 %"j.3", 1
  %"j.4" = alloca i64
  store i64 %"_tmp7", i64* %"j.4"
  %"j.5" = load i64, i64* %"j.4"
  %"_tmp8" = icmp slt i64 %"j.5", %"i.4"
  br i1 %"_tmp8", label %"_block_while_loop4", label %"_block_after_while_loop5"
_block_after_while_loop5:
  %".12" = sitofp i64 %"i.4" to double
  %"_tmp9" = fcmp olt double %".12", %".1"
  br i1 %"_tmp9", label %"_block_while_loop1", label %"_block_after_while_loop2"
}

define void @"printer"(double %".1") 
{
entry:
  %".3" = alloca [6 x i8]
  store [6 x i8] c"World\00", [6 x i8]* %".3"
  %".5" = bitcast [22 x i8]* @"fstr" to i8*
  %".6" = call i32 (i8*, ...) @"printf"(i8* %".5", [6 x i8]* %".3", double %".1")
  ret void
}

@"fstr" = internal constant [22 x i8] c"Hello, %s! %f times!\0a\00"
declare i32 @"printf"(i8* %".1", ...) 

!0 = !DIFile(directory: "bar", filename: "factorial.py")
